home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 5 / Amiga Tools 5.iso / tools / developer-tools / andere sprachen / oberonv4 / oberon-src / system / o.mod (.txt) < prev    next >
Encoding:
Oberon Text  |  1995-05-11  |  1.3 KB  |  55 lines

  1. Syntax10.Scn.Fnt
  2. Syntax10b.Scn.Fnt
  3. MODULE O;
  4.     Procedures for writing to AmigaDos stdout.
  5. IMPORT SYSTEM, AmigaDos;
  6. PROCEDURE Ch*(ch:CHAR);
  7. BEGIN
  8.     IF AmigaDos.Write(AmigaDos.Output(),ch,1)=1 THEN END;
  9. END Ch;
  10. PROCEDURE Ln*;    BEGIN Ch(0AX) END Ln;
  11. PROCEDURE Str*(str:ARRAY OF CHAR);
  12.     i:INTEGER;
  13. BEGIN
  14.     i:=0; WHILE str[i]#0X DO Ch(str[i]); INC(i); END;
  15. END Str;
  16. PROCEDURE Int*(x: LONGINT);
  17.     i: INTEGER; x0: LONGINT;
  18.     a: ARRAY 11 OF CHAR;
  19. BEGIN i := 0;
  20.     IF x < 0 THEN
  21.         IF x = MIN(LONGINT) THEN Str(" -2147483648"); RETURN
  22.         ELSE x0 := -x
  23.         END
  24.     ELSE
  25.         x0 := x
  26.     END;
  27.     REPEAT
  28.         a[i] := CHR(x0 MOD 10 + 30H); x0 := x0 DIV 10; INC(i)
  29.     UNTIL x0 = 0;
  30.     Ch(" ");
  31.     IF x < 0 THEN Ch("-") END;
  32.     REPEAT DEC(i); Ch(a[i]) UNTIL i = 0
  33. END Int;
  34. PROCEDURE Hex*(x: LONGINT);
  35.      i: INTEGER; y: LONGINT;
  36.     a: ARRAY 10 OF CHAR;
  37. BEGIN
  38.     i := 0; Ch(" ");
  39.     REPEAT y := x MOD 10H;
  40.         IF y < 10 THEN a[i] := CHR(y + 30H) ELSE a[i] := CHR(y + 37H) END;
  41.         x := x DIV 10H; INC(i)
  42.     UNTIL i = 8;
  43.     REPEAT DEC(i); Ch(a[i]) UNTIL i = 0
  44. END Hex;
  45. PROCEDURE Stk*;
  46. VAR fp, pc, i: LONGINT;
  47. BEGIN
  48.     SYSTEM.GETREG(14, fp);
  49.     FOR i := 1 TO 8 DO
  50.         SYSTEM.GET(fp+4, pc); SYSTEM.GET(fp, fp);
  51.         Hex(fp); Str("debug"); Hex(pc); Ln;
  52.     END;
  53. END Stk;
  54. END O.
  55.